package cn.iocoder.lw.module.core.dal.dataobject.device;

import cn.iocoder.lw.framework.mybatis.core.dataobject.BaseDO;
import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.*;

import java.time.LocalDateTime;

/**
 * 核心-设备 DO
 *
 * @author Lw源码
 */
@TableName(value = "core_device")
@KeySequence("core_device_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class CoreDeviceDO extends BaseDO {

    private static final long serialVersionUID = 1L;

	/**
     * 设备编号，数据库自增
     */
    @TableId
    private Long id;

    /**
     * 项目编号
     *
     * 关联 {@link CoreProjectDO#id}
     */
    private Long projectId;

    /**
     * 设备类型
     */
    private String deviceType;

    /**
     * 设备ID（关联商品SPU的ID）
     *
     * 关联 {@link cn.iocoder.lw.module.product.dal.dataobject.spu.ProductSpuDO#id}
     */
    private Long spuId;

    /**
     * 设备名称
     */
    private String deviceName;

    /**
     * 设备数量
     */
    private Integer deviceCount;

    /**
     * 质保有效开始时间
     */
    private LocalDateTime warrantyStartTime;

    /**
     * 质保有效结束时间
     */
    private LocalDateTime warrantyEndTime;

    /**
     * 设备状态
     *
     * 0-未安装 1-运行中 2-维修中 3-已停用 4-已报废
     */
    private Integer status;

    /**
     * 设备位置描述
     */
    private String location;

    /**
     * 设备编码
     */
    private String deviceCode;

    /**
     * 安装时间
     */
    private LocalDateTime installTime;

    /**
     * 备注
     */
    private String remark;

}